Many circuit developers utilize third-party fabricators or foundries to manufacture integrated circuit chips or systems implementing their circuit designs. The lack of direct control over the manufacturing of the chips or systems can lead to various manufacturing-related vulnerabilities. In an attempt to combat some of these manufacturing-related vulnerabilities, circuit developers can include security circuitry having at least one physical unclonable function (PUF) into their circuit designs. Since physical unclonable functions have physical characteristics that, when manufactured, can differ based on random manufacturing variations, the inclusion of the security circuitry in the circuit design can render each manufactured chip or system unique (or near unique) even though they are manufactured utilizing the same circuit design. The circuit developers can leverage this hardware-uniqueness by having the security circuitry authenticate or lock each manufactured chip or system after manufacture.
Physical unclonable functions, such as those included in security circuitry discussed above or implemented in other systems, typically include physical characteristics, such as a signal path delay, strength of bi-stable latch circuitry, capacitance, or the like, which can vary randomly and often subtly during manufacturing. The physical unclonable functions can generate a unique (or near unique) output based on those physical characteristics as manufactured. In order to have an effective physical unclonable function, any physical unclonable function manufactured based on a common design should be able to output a bit with an approximately even chance having a value corresponding to a 0 or a 1, while also being able to consistently output that bit value over time. Thus, it should be unknown from the design which bit value the physical unclonable function will output, as the value should be dependent on manufacturing variations, but once manufactured, regardless of which bit value the physical unclonable function outputs, the physical unclonable function should output that same bit value consistently over time.
Since physical unclonable functions rely of subtle and random manufacturing variations for their ability to provide a random output bit value, conventional physical unclonable functions are typically designed at the physical-level. For example, a ring oscillator can have multiple alternate signal paths, each physically designed to have an identical propagation delay, but when manufactured, random variations can cause the delays in the signal paths to differ. The ring oscillator can include circuitry to output a single bit, the value of which corresponds to the difference in the delay in the signal paths. While a physical design of a physical unclonable function can be incorporated into a design layout, for example, as a macro or the like, designing circuitry at a physical-level can have several drawbacks. For example, physical-level designs are not process agnostic, meaning a different physical-level design for a physical unclonable function may have to be generated for each different manufacturing process, process node, or configurable hardware implementation, such as a Field Programmable Gate Array (FPGA), or the like. Furthermore, since physical-level designing of this type is often performed manually, it can be time-consuming, especially when the physical unclonable function is implemented in multiple different manufacturing processes or different hardware implementations.